
class PlanoEstagioController {

    /*
     * Closure que grava o registro.
     */
    def save   = {
        if(!verificaLogon()){
            return;
        }
        // Carrega os atributos e recebe os dados.
        def planoEstagioInstance = new PlanoEstagio(params);
        // Grava os dados e redireciona para a tela de origem.
        if (planoEstagioInstance.save(flush: true)) {
            flash.message = "Plano de Estágio cadastrado com sucesso.";
            redirect(controller: 'tce', action: "edit", id:params.tce.id,);
        }else {
            flash.message = "Não foi possível cadastrar o plano de estágio.";
            redirect(controller: 'tce', action: "edit", id:params.tce.id, model: [planoEstagioInstance: planoEstagioInstance]);
        }
    };

    /*
     * Closure que grava as alterações no registro.
     */
    def update   = {
        if(!verificaLogon()){
            return;
        }
        def planoEstagioInstance = PlanoEstagio.get(params.id);
        planoEstagioInstance.properties = params;
        // Grava os dados e redireciona para a tela de origem.
        if (planoEstagioInstance.save(flush: true)) {
            flash.message = "Plano de Estágio alterado com sucesso.";
            redirect(controller:'tce', action: "edit", id:params.tce.id);
        }else {
            flash.message = "Não foi possível alterar o plano de estágio.";
            redirect(controller:'tce', action: "edit", id:params.tce.id, model:[planoEstagioInstance: planoEstagioInstance]);
        }
    };

    /*
     * Closure que carrega os dados para alteração do registro.
     */
    def edit   = {
        if(!verificaLogon()){
            return;
        }
        def planoEstagioInstance = PlanoEstagio.findById(params.id);
        // Se o contato existe retorna os dados para tela de origem.
        if (planoEstagioInstance){
            redirect(controller:'tce', action:"edit", id:params.tce, params:[plano: planoEstagioInstance]);
        }else{
            flash.message = "Plano de Estágio não encontrado.";
            redirect(controller:'tce', action:"edit", id:params.tce);
        }
    };

    /*
     * Closure que exclui os registro.
     */
    def delete = {
        if(!verificaLogon()){
            return;
        }
        // Carrega os dados.
        def planoEstagioInstance = PlanoEstagio.findById(params.id)
        // Exclui o registro.
        if(planoEstagioInstance.delete()){
            flash.message = "Plano de Estágio excluído com sucesso.";
            redirect(controller:'tce', action:'edit', id:params.tce);
        }else{
            flash.message = "Não foi possível excluir o plano de estágio.";
            redirect(controller:'tce', action:'edit', id:params.tce);
        }
    };

    /*
     * Método que verifica se o usuário está logado.
     * Se não estiver logado é redirecionado para home
     */
    private boolean verificaLogon() {
        if(!session["pessoa"]){
            flash.message = "Você precisa estar logado para acessar esta página.";
            redirect(controller:'login', action:'auth');
            return false;
        }

        return true;
    }
}
